﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LiMinCRMPlugin.InterfaceDocking
{
    /// <summary>
    /// 应收单MODEL
    /// 2024年3月26日 15:50:25
    /// mey
    /// </summary>
    public class ReceivableMode
    {
        public class DataHeader
        {
            public List<Data> data { get; set; }
            public Header header { get; set; }

        }

        public class Datajson
        {
            public DataHeader datajson { get; set; }
        }

        /// <summary>
        /// 头部报文
        /// </summary>
        public class Header
        {
            public string systemid { get; set; }  //系统标识（由OA分配）
            public string currentDateTime { get; set; } //当前时间字符串，格式：yyyyMMddHHmmss（调用时生成）

            public string Md5 { get; set; } //systemid+password+currentDateTime字符串用md5加密（password密码由OA提供)

        }

        /// <summary>
        /// 报文
        /// </summary>
        public class mainTable
        {
            public string sfdc { get; set; }//是否淡储  枚举：[0:否,1:是]
            public string djnm { get; set; }//单据内码  
            public string djbh { get; set; }//单据编号
            public string crmbm { get; set; }//CRM编码  
            public string ddbh { get; set; }//订单编号  
            public string xsbm { get; set; }//销售部门    传入：OA部门编号
            public string xsy { get; set; }//销售员   传入：OA人员工号
            public string xszz { get; set; }//销售组织   
            public string rq { get; set; }//日期   传入格式：yyyy-MM-dd
            public string fhzz { get; set; }//发货组织  

            public string skzz { get; set; }//收款组织  


            public string jszz { get; set; }//结算组织  
            public string jhdd { get; set; }//交货地点  
            public string sfdhdd { get; set; }//是否调货订单      枚举：[0:否,1:是]
            public string bz { get; set; }//备注  
            public string jsbb { get; set; }//结算币别  
            public string sfdz { get; set; }//是否定制        枚举：[0:否,1:是]
            public string jhfs { get; set; }//交货方式    枚举：[0:发货,1:自提]
            public string khmc { get; set; }//客户名称  

            public string sktj { get; set; }//收款条件  
            public string jsfs { get; set; }//结算方式  
            public string cgy { get; set; }//仓管员     传入：OA人员工号
            public string cys { get; set; }//承运商  
            public string ysdh { get; set; }//运输单号  

            public decimal ysje { get; set; }//应收金额

            public string xszt { get; set; }//销售主体

            public string jcbm { get; set; }//进仓编码jcbm

            public string hxfs { get; set; }//核销方式
            public string zfysd { get; set; }//正负应收单
            

        }
        public class Datadetail
        {
            public Operate operate { get; set; }
            public DetailData data { get; set; }

        }
        public class DetailData
        {

            public string ck { get; set; }//仓库
            public string ydbs { get; set; }//源单标识
            public string ydbm { get; set; }//源单编码
            public string ddmxxh { get; set; }//单据体主键
            public string cp1 { get; set; }//产品名称
            public decimal hsdj { get; set; }//含税单价
            public string sfzp { get; set; }//是否赠品   枚举：[0:否,1:是]

            public decimal sl { get; set; }//税率(%)   
            public decimal xssl { get; set; }//销售数量
            public string pch { get; set; }//批次号
            public string xsdw { get; set; }//销售单位
            public string jjdw { get; set; }//计价单位


            public string kczz { get; set; }//库存组织   
            public string jszz { get; set; }//结算组织
            public string cp { get; set; }//产品编码
            public decimal jshj { get; set; }//价税合计

            public string ckdh { get; set; }//出库单号
            public decimal jbsl { get; set; }//基本数量
            public decimal bdzrje { get; set; }//本单折让金额
            public decimal ljzrje { get; set; }//累计折让金额
          
        }


        public class Operate
        {
            public string action { get; set; }//"枚举：SaveOrUpdate 新增或修改/Save 新增/Update 修改/Delete 删除
        }
        public class detail1
        {
            public Operate operate { get; set; }
            public Datadetail data { get; set; }

        }
        /// <summary>
        /// 提交人等信息
        /// </summary>
        public class operationinfo
        {
            public string operatorAbAb { get; set; }//当前数据操作者
            public string operationDate { get; set; }//操作数据的日期
            public string operationTime { get; set; }//操作数据的时间
        }

        /// <summary>
        /// 报文主体
        /// </summary>
        public class Data
        {
            public operationinfo operationinfo { get; set; }//提交人等信息

            public mainTable mainTable { get; set; }//提交人等信息


            public List<Datadetail> detail1 { get; set; }//明细信息 

        }
        /// <summary>
        /// 查询返回结果
        /// </summary>
        public class result
        {
            public mainTable mainTable;
        }


    }
}
